Skip to content

Conversation

matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Jul 18, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

cjgillot and others added 30 commits July 1, 2025 11:37
See RUST-141600: this test is broken in two ways:

1. This test triggers `-Wincompatible-pointer-types` on GCC 14.
2. This test requires ARMv8.5+ w/ MTE extensions enabled, but GHA CI
   runner hardware do not have this enabled.
./x is recommended over running ./x.py directly,
and is the more commonly-used invocation of bootstrap in the guide
use a consistent (and recommended) invocation
- --depth=1 is more useful for once-off uses, like on ci
- .git postfix on github repo url is not needed
That is, calling it an example is misleading
Nowhere else is this called "Dist check"
distcheck has only one possible invocation
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide PG-exploit-mitigations Project group: Exploit mitigations S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Jul 18, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Jul 18, 2025

📌 Commit c22e2ea has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 18, 2025
@bors
Copy link
Collaborator

bors commented Jul 18, 2025

⌛ Testing commit c22e2ea with merge 6c0a912...

@bors
Copy link
Collaborator

bors commented Jul 18, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 6c0a912 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jul 18, 2025
@bors bors merged commit 6c0a912 into rust-lang:master Jul 18, 2025
12 checks passed
@rustbot rustbot added this to the 1.90.0 milestone Jul 18, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#142300 Disable tests/run-make/mte-ffi because no CI runners have… 83f530d39f2542d6a069f333e6315205bfa73003 (link)
#143271 Store the type of each GVN value 93db3763d9735e1baaad7932a8700c578c6dbed1 (link)
#143293 fix -Zsanitizer=kcfi on #[naked] functions c6ecbb9289944b35d3a4dc5d034d4ec711562c08 (link)
#143719 Emit warning when there is no space between -o and arg f4de192cd829370e808a22cc71a81ee615dcab46 (link)
#143846 pass --gc-sections if -Zexport-executable-symbols is enable… 63eaccf6094f29aaeecad0d5d3f70e44951b62e8 (link)
#143891 Port #[coverage] to the new attribute system eff35607749013d9de65c732571f4c0a836dbba0 (link)
#143967 constify Option methods 511d666d0add206e15b7d4f3b23b9ae2e4c66ab5 (link)
#144008 Fix false positive double negations with macro invocation 6d1bc76597638131d80d67eaf0ea44c57da309d0 (link)
#144010 Boostrap: add warning on optimize = false e4321b27e663363096361cfbeca71b37cd94e648 (link)
#144049 rustc-dev-guide subtree update a04e5e016b120e62662b3363ec56cc39acd569a5 (link)
#144056 Copy GCC sources into the build directory even outside CI 60f8f8975f7b43d0bdca4febed0788b4969b939f (link)

previous master: 1aa5b22465

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

Copy link
Contributor

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing 1aa5b22 (parent) -> 6c0a912 (this PR)

Test differences

Show 229 test diffs

Stage 1

  • [codegen] tests/codegen/sanitizer/kcfi/naked-function.rs#aarch64: [missing] -> pass (J3)
  • [codegen] tests/codegen/sanitizer/kcfi/naked-function.rs#x86_64: [missing] -> pass (J3)
  • [crashes] tests/crashes/128094.rs: pass -> [missing] (J3)
  • [crashes] tests/crashes/135128.rs: pass -> [missing] (J3)
  • [run-make] tests/run-make/option-output-no-space: [missing] -> pass (J3)
  • [ui] tests/ui/asm/naked-function-shim.rs#aarch64: [missing] -> pass (J3)
  • [ui] tests/ui/asm/naked-function-shim.rs#x86_64: [missing] -> pass (J3)
  • [ui] tests/ui/lint/lint-double-negations-macro.rs: [missing] -> pass (J3)
  • [ui] tests/ui/mir/gvn-nonsensical-coroutine-layout.rs: [missing] -> pass (J3)
  • [ui] tests/ui/mir/gvn-nonsensical-sized-str.rs: [missing] -> pass (J3)

Stage 2

  • [ui] tests/ui/asm/naked-function-shim.rs#aarch64: [missing] -> pass (J0)
  • [ui] tests/ui/asm/naked-function-shim.rs#x86_64: [missing] -> pass (J0)
  • [ui] tests/ui/lint/lint-double-negations-macro.rs: [missing] -> pass (J0)
  • [ui] tests/ui/mir/gvn-nonsensical-coroutine-layout.rs: [missing] -> pass (J0)
  • [ui] tests/ui/mir/gvn-nonsensical-sized-str.rs: [missing] -> pass (J0)
  • [codegen] tests/codegen/sanitizer/kcfi/naked-function.rs#aarch64: [missing] -> pass (J1)
  • [codegen] tests/codegen/sanitizer/kcfi/naked-function.rs#x86_64: [missing] -> pass (J1)
  • [crashes] tests/crashes/128094.rs: pass -> [missing] (J1)
  • [crashes] tests/crashes/135128.rs: pass -> [missing] (J1)
  • [run-make] tests/run-make/option-output-no-space: [missing] -> ignore (ignored when cross-compiling) (J2)
  • [ui] tests/ui/linking/export-executable-symbols.rs: ignore (only executed when the target environment is gnu) -> ignore (ignored when cross-compiling) (J4)
  • [run-make] tests/run-make/mte-ffi: pass -> ignore (ignored always ((FIXME tests/run-make/mte-ffi/ is broken #141600))) (J5)
  • [run-make] tests/run-make/option-output-no-space: [missing] -> pass (J6)
  • [run-make] tests/run-make/export-executable-symbols: ignore (only executed when the target family is unix) -> pass (J7)
  • [ui] tests/ui/linking/export-executable-symbols.rs: ignore (only executed when the target environment is gnu) -> pass (J8)
  • [ui] tests/ui/linking/export-executable-symbols.rs: pass -> ignore (ignored when cross-compiling) (J9)
  • [ui] tests/ui/linking/export-executable-symbols.rs: ignore (only executed when the operating system is linux) -> pass (J10)

Additionally, 202 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 6c0a912e5a45904cf537f34876b16ae71d899f86 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. aarch64-apple: 7091.9s -> 4929.2s (-30.5%)
  2. dist-aarch64-linux: 8547.4s -> 5973.2s (-30.1%)
  3. x86_64-apple-1: 7906.9s -> 9982.8s (26.3%)
  4. dist-apple-various: 6695.4s -> 8177.9s (22.1%)
  5. x86_64-apple-2: 6493.8s -> 5456.9s (-16.0%)
  6. dist-aarch64-apple: 5537.4s -> 6255.2s (13.0%)
  7. dist-x86_64-apple: 11139.3s -> 9854.8s (-11.5%)
  8. aarch64-msvc-2: 5790.4s -> 5177.0s (-10.6%)
  9. x86_64-gnu-llvm-19-2: 6001.7s -> 6539.8s (9.0%)
  10. pr-check-1: 1862.3s -> 1704.6s (-8.5%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (6c0a912): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.4% [0.4%, 0.4%] 3
Regressions ❌
(secondary)
0.3% [0.2%, 0.5%] 8
Improvements ✅
(primary)
-1.5% [-1.5%, -1.5%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.1% [-1.5%, 0.4%] 4

Max RSS (memory usage)

Results (primary -3.6%, secondary -2.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-3.6% [-6.8%, -1.5%] 4
Improvements ✅
(secondary)
-2.9% [-4.1%, -0.8%] 5
All ❌✅ (primary) -3.6% [-6.8%, -1.5%] 4

Cycles

This benchmark run did not return any relevant results for this metric.

Binary size

Results (primary 0.0%, secondary -0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.2% [0.2%, 0.2%] 5
Regressions ❌
(secondary)
0.1% [0.1%, 0.2%] 5
Improvements ✅
(primary)
-0.2% [-0.4%, -0.0%] 4
Improvements ✅
(secondary)
-0.3% [-0.9%, -0.0%] 8
All ❌✅ (primary) 0.0% [-0.4%, 0.2%] 9

Bootstrap: 464.583s -> 465.309s (0.16%)
Artifact size: 374.66 MiB -> 374.62 MiB (-0.01%)

@rustbot rustbot added the perf-regression Performance regression. label Jul 18, 2025
Muscraft pushed a commit to Muscraft/rust that referenced this pull request Jul 21, 2025
…iaskrgr

Rollup of 11 pull requests

Successful merges:

 - rust-lang#142300 (Disable `tests/run-make/mte-ffi` because no CI runners have MTE extensions enabled)
 - rust-lang#143271 (Store the type of each GVN value)
 - rust-lang#143293 (fix `-Zsanitizer=kcfi` on `#[naked]` functions)
 - rust-lang#143719 (Emit warning when there is no space between `-o` and arg)
 - rust-lang#143846 (pass --gc-sections if -Zexport-executable-symbols is enabled and improve tests)
 - rust-lang#143891 (Port `#[coverage]` to the new attribute system)
 - rust-lang#143967 (constify `Option` methods)
 - rust-lang#144008 (Fix false positive double negations with macro invocation)
 - rust-lang#144010 (Boostrap: add warning on `optimize = false`)
 - rust-lang#144049 (rustc-dev-guide subtree update)
 - rust-lang#144056 (Copy GCC sources into the build directory even outside CI)

r? `@ghost`
`@rustbot` modify labels: rollup
@rylev
Copy link
Member

rylev commented Jul 22, 2025

The relative size of the regressions are fairly small, I don't think it's worth the investigation.

@rustbot label: +perf-regression-triaged

@rustbot rustbot added the perf-regression-triaged The performance regression has been triaged. label Jul 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. PG-exploit-mitigations Project group: Exploit mitigations rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.